﻿2026-06-04T03:42:56.9732118Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T03:42:56.9732784Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T03:42:56.9753755Z shell: /usr/bin/bash -e {0}
2026-06-04T03:42:56.9754232Z ##[endgroup]
2026-06-04T03:42:56.9938876Z Requirement quality findings (16); 128 requirements queued for agent review:
2026-06-04T03:42:56.9941723Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T03:42:56.9944067Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T03:42:56.9947477Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T03:42:56.9950189Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T03:42:56.9951980Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T03:42:56.9953945Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T03:42:56.9956475Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T03:42:56.9959648Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T03:42:56.9961768Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T03:42:56.9963526Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-04T03:42:56.9964919Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T03:42:56.9979235Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T03:42:56.9982074Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T03:42:56.9984168Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T03:42:56.9985697Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T03:42:56.9987087Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T03:42:56.9987116Z 
2026-06-04T03:42:56.9987652Z # Requirement quality review
2026-06-04T03:42:56.9987673Z 
2026-06-04T03:42:56.9988842Z You are reviewing 128 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T03:42:56.9990404Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T03:42:56.9991588Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T03:42:56.9992445Z this command's output. Your task is the rubric items below.
2026-06-04T03:42:56.9992467Z 
2026-06-04T03:42:56.9992925Z ## Rubric
2026-06-04T03:42:56.9992948Z 
2026-06-04T03:42:56.9994303Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T03:42:56.9995552Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T03:42:56.9996633Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T03:42:56.9997361Z - **active-voice** — clear subject and active verb.
2026-06-04T03:42:56.9997386Z 
2026-06-04T03:42:56.9998586Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T03:42:56.9999064Z clear concerns.
2026-06-04T03:42:56.9999084Z 
2026-06-04T03:42:56.9999918Z ## Requirements
2026-06-04T03:42:56.9999941Z 
2026-06-04T03:42:57.0000406Z ### REQ-ARCH-1
2026-06-04T03:42:57.0001043Z - Title: Many small acyclically-layered crates
2026-06-04T03:42:57.0002061Z - Required stages: impl
2026-06-04T03:42:57.0002087Z 
2026-06-04T03:42:57.0002549Z ### REQ-ARCH-2
2026-06-04T03:42:57.0003418Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T03:42:57.0003932Z - Required stages: impl
2026-06-04T03:42:57.0003998Z 
2026-06-04T03:42:57.0004456Z ### REQ-ARCH-3
2026-06-04T03:42:57.0005585Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T03:42:57.0006113Z - Required stages: impl, unit
2026-06-04T03:42:57.0006137Z 
2026-06-04T03:42:57.0006609Z ### REQ-ARCH-4
2026-06-04T03:42:57.0007520Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T03:42:57.0008057Z - Required stages: impl, unit
2026-06-04T03:42:57.0008077Z 
2026-06-04T03:42:57.0008552Z ### REQ-DAEMON-1
2026-06-04T03:42:57.0009643Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T03:42:57.0010357Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0010398Z 
2026-06-04T03:42:57.0010868Z ### REQ-DAEMON-2
2026-06-04T03:42:57.0011575Z - Title: Broker/brain split for seamless self-update
2026-06-04T03:42:57.0012125Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0012146Z 
2026-06-04T03:42:57.0012606Z ### REQ-DAEMON-3
2026-06-04T03:42:57.0013597Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T03:42:57.0014139Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0014161Z 
2026-06-04T03:42:57.0014639Z ### REQ-DAEMON-4
2026-06-04T03:42:57.0015255Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T03:42:57.0015795Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0015816Z 
2026-06-04T03:42:57.0016288Z ### REQ-STORE-1
2026-06-04T03:42:57.0022236Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-04T03:42:57.0022766Z - Required stages: 
2026-06-04T03:42:57.0022787Z 
2026-06-04T03:42:57.0023278Z ### REQ-MANIFEST-1
2026-06-04T03:42:57.0024288Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T03:42:57.0024857Z - Required stages: doc, impl, unit
2026-06-04T03:42:57.0024879Z 
2026-06-04T03:42:57.0025358Z ### REQ-SEAM-SPAWN
2026-06-04T03:42:57.0025882Z - Title: spawn-session seam
2026-06-04T03:42:57.0026413Z - Required stages: impl, unit
2026-06-04T03:42:57.0026435Z 
2026-06-04T03:42:57.0026924Z ### REQ-SEAM-POSTSPAWN
2026-06-04T03:42:57.0027608Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T03:42:57.0028134Z - Required stages: impl, unit
2026-06-04T03:42:57.0028155Z 
2026-06-04T03:42:57.0028649Z ### REQ-SEAM-PSYCHE
2026-06-04T03:42:57.0029570Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T03:42:57.0030273Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0030293Z 
2026-06-04T03:42:57.0030794Z ### REQ-SEAM-HISTORY
2026-06-04T03:42:57.0031775Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T03:42:57.0032432Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0032453Z 
2026-06-04T03:42:57.0032947Z ### REQ-SEAM-ACTIVITY
2026-06-04T03:42:57.0033928Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T03:42:57.0034465Z - Required stages: impl, unit
2026-06-04T03:42:57.0034489Z 
2026-06-04T03:42:57.0034973Z ### REQ-SEAM-INJECT
2026-06-04T03:42:57.0035839Z - Title: inject-input methods configurable per activity-state
2026-06-04T03:42:57.0036371Z - Required stages: impl, unit
2026-06-04T03:42:57.0036398Z 
2026-06-04T03:42:57.0036877Z ### REQ-SEAM-RESUME
2026-06-04T03:42:57.0037876Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T03:42:57.0038400Z - Required stages: impl, unit
2026-06-04T03:42:57.0038419Z 
2026-06-04T03:42:57.0038925Z ### REQ-SEAM-CAPABILITY
2026-06-04T03:42:57.0039899Z - Title: Hostable endpoint-types capability declaration
2026-06-04T03:42:57.0040803Z - Required stages: impl, unit
2026-06-04T03:42:57.0040827Z 
2026-06-04T03:42:57.0041320Z ### REQ-SEAM-UPDATE
2026-06-04T03:42:57.0042188Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T03:42:57.0042735Z - Required stages: impl, unit
2026-06-04T03:42:57.0042757Z 
2026-06-04T03:42:57.0043220Z ### REQ-API-1
2026-06-04T03:42:57.0044142Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T03:42:57.0044692Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0044714Z 
2026-06-04T03:42:57.0045166Z ### REQ-API-2
2026-06-04T03:42:57.0046311Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T03:42:57.0046856Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0046879Z 
2026-06-04T03:42:57.0047341Z ### REQ-API-3
2026-06-04T03:42:57.0048055Z - Title: commune/signoff are file-drops, not commands
2026-06-04T03:42:57.0048599Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0048633Z 
2026-06-04T03:42:57.0049102Z ### REQ-START-1
2026-06-04T03:42:57.0050481Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T03:42:57.0051019Z - Required stages: impl, unit
2026-06-04T03:42:57.0051184Z 
2026-06-04T03:42:57.0051669Z ### REQ-START-2
2026-06-04T03:42:57.0052376Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T03:42:57.0052924Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0052946Z 
2026-06-04T03:42:57.0053416Z ### REQ-START-3
2026-06-04T03:42:57.0054337Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T03:42:57.0054892Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0054915Z 
2026-06-04T03:42:57.0055383Z ### REQ-START-4
2026-06-04T03:42:57.0056085Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T03:42:57.0056613Z - Required stages: impl, unit
2026-06-04T03:42:57.0056632Z 
2026-06-04T03:42:57.0057092Z ### REQ-EP-1
2026-06-04T03:42:57.0057752Z - Title: Day-one endpoint types; open type system
2026-06-04T03:42:57.0058300Z - Required stages: impl, unit
2026-06-04T03:42:57.0058322Z 
2026-06-04T03:42:57.0058785Z ### REQ-EP-2
2026-06-04T03:42:57.0060015Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T03:42:57.0060567Z - Required stages: impl, unit
2026-06-04T03:42:57.0060586Z 
2026-06-04T03:42:57.0061037Z ### REQ-EP-3
2026-06-04T03:42:57.0062054Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T03:42:57.0062592Z - Required stages: impl, unit
2026-06-04T03:42:57.0062617Z 
2026-06-04T03:42:57.0063065Z ### REQ-EP-4
2026-06-04T03:42:57.0063829Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T03:42:57.0064354Z - Required stages: impl, unit
2026-06-04T03:42:57.0064374Z 
2026-06-04T03:42:57.0064837Z ### REQ-EP-5
2026-06-04T03:42:57.0069127Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-04T03:42:57.0069877Z - Required stages: 
2026-06-04T03:42:57.0069898Z 
2026-06-04T03:42:57.0070398Z ### REQ-INST-1
2026-06-04T03:42:57.0071251Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T03:42:57.0071779Z - Required stages: 
2026-06-04T03:42:57.0071799Z 
2026-06-04T03:42:57.0072279Z ### REQ-INST-2
2026-06-04T03:42:57.0072889Z - Title: Per-node files, synced Psyche mind
2026-06-04T03:42:57.0073392Z - Required stages: 
2026-06-04T03:42:57.0073413Z 
2026-06-04T03:42:57.0073887Z ### REQ-INST-3
2026-06-04T03:42:57.0074673Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T03:42:57.0075183Z - Required stages: 
2026-06-04T03:42:57.0075203Z 
2026-06-04T03:42:57.0075674Z ### REQ-INST-4
2026-06-04T03:42:57.0076643Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T03:42:57.0077149Z - Required stages: 
2026-06-04T03:42:57.0077168Z 
2026-06-04T03:42:57.0077836Z ### REQ-INST-5
2026-06-04T03:42:57.0078821Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T03:42:57.0079369Z - Required stages: 
2026-06-04T03:42:57.0079391Z 
2026-06-04T03:42:57.0080034Z ### REQ-INST-6
2026-06-04T03:42:57.0081050Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T03:42:57.0081546Z - Required stages: 
2026-06-04T03:42:57.0081564Z 
2026-06-04T03:42:57.0082024Z ### REQ-INST-7
2026-06-04T03:42:57.0082727Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T03:42:57.0083271Z - Required stages: impl, unit
2026-06-04T03:42:57.0083291Z 
2026-06-04T03:42:57.0083751Z ### REQ-INST-8
2026-06-04T03:42:57.0084543Z - Title: Remote-control mode distinct from local operation
2026-06-04T03:42:57.0085073Z - Required stages: impl, unit
2026-06-04T03:42:57.0085093Z 
2026-06-04T03:42:57.0085564Z ### REQ-INST-9
2026-06-04T03:42:57.0086578Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T03:42:57.0087119Z - Required stages: impl, unit
2026-06-04T03:42:57.0087139Z 
2026-06-04T03:42:57.0087608Z ### REQ-INST-10
2026-06-04T03:42:57.0088780Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T03:42:57.0089346Z - Required stages: impl, unit
2026-06-04T03:42:57.0089749Z 
2026-06-04T03:42:57.0090407Z ### REQ-INST-11
2026-06-04T03:42:57.0091579Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T03:42:57.0092116Z - Required stages: impl, unit
2026-06-04T03:42:57.0092137Z 
2026-06-04T03:42:57.0092591Z ### REQ-INST-12
2026-06-04T03:42:57.0094276Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T03:42:57.0094808Z - Required stages: impl, unit
2026-06-04T03:42:57.0094829Z 
2026-06-04T03:42:57.0095281Z ### REQ-INST-13
2026-06-04T03:42:57.0096255Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T03:42:57.0096800Z - Required stages: impl, unit
2026-06-04T03:42:57.0096822Z 
2026-06-04T03:42:57.0097292Z ### REQ-INST-14
2026-06-04T03:42:57.0099978Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T03:42:57.0100488Z - Required stages: 
2026-06-04T03:42:57.0100508Z 
2026-06-04T03:42:57.0100976Z ### REQ-INST-15
2026-06-04T03:42:57.0105625Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-04T03:42:57.0106132Z - Required stages: 
2026-06-04T03:42:57.0106150Z 
2026-06-04T03:42:57.0106617Z ### REQ-REACH-1
2026-06-04T03:42:57.0107361Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T03:42:57.0107893Z - Required stages: impl, unit
2026-06-04T03:42:57.0107913Z 
2026-06-04T03:42:57.0108391Z ### REQ-REACH-2
2026-06-04T03:42:57.0109227Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T03:42:57.0109916Z - Required stages: 
2026-06-04T03:42:57.0109938Z 
2026-06-04T03:42:57.0110555Z ### REQ-MSG-1
2026-06-04T03:42:57.0113336Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-04T03:42:57.0113898Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0113921Z 
2026-06-04T03:42:57.0114384Z ### REQ-MSG-2
2026-06-04T03:42:57.0115909Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T03:42:57.0116433Z - Required stages: impl, unit
2026-06-04T03:42:57.0116452Z 
2026-06-04T03:42:57.0116916Z ### REQ-MSG-3
2026-06-04T03:42:57.0119269Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T03:42:57.0120331Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0120355Z 
2026-06-04T03:42:57.0120851Z ### REQ-NODE-IDENTITY
2026-06-04T03:42:57.0122111Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T03:42:57.0122661Z - Required stages: impl, unit
2026-06-04T03:42:57.0122681Z 
2026-06-04T03:42:57.0123154Z ### REQ-NET-1
2026-06-04T03:42:57.0124157Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T03:42:57.0124692Z - Required stages: impl, unit
2026-06-04T03:42:57.0124712Z 
2026-06-04T03:42:57.0125169Z ### REQ-NET-2
2026-06-04T03:42:57.0126123Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T03:42:57.0126622Z - Required stages: impl
2026-06-04T03:42:57.0126644Z 
2026-06-04T03:42:57.0127109Z ### REQ-NET-3
2026-06-04T03:42:57.0127978Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T03:42:57.0128464Z - Required stages: 
2026-06-04T03:42:57.0128483Z 
2026-06-04T03:42:57.0128977Z ### REQ-PAIR-1
2026-06-04T03:42:57.0129719Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T03:42:57.0130440Z - Required stages: impl, unit
2026-06-04T03:42:57.0130461Z 
2026-06-04T03:42:57.0130941Z ### REQ-PAIR-2
2026-06-04T03:42:57.0131642Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T03:42:57.0132339Z - Required stages: impl, unit
2026-06-04T03:42:57.0132363Z 
2026-06-04T03:42:57.0132828Z ### REQ-PAIR-3
2026-06-04T03:42:57.0133594Z - Title: Fetch current pairing code from any paired node
2026-06-04T03:42:57.0134121Z - Required stages: impl, unit
2026-06-04T03:42:57.0134157Z 
2026-06-04T03:42:57.0134619Z ### REQ-PAIR-4
2026-06-04T03:42:57.0135187Z - Title: Subnet naming on first pairing
2026-06-04T03:42:57.0135711Z - Required stages: impl, unit
2026-06-04T03:42:57.0135731Z 
2026-06-04T03:42:57.0136203Z ### REQ-PAIR-5
2026-06-04T03:42:57.0137962Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T03:42:57.0138516Z - Required stages: impl, unit
2026-06-04T03:42:57.0138539Z 
2026-06-04T03:42:57.0139013Z ### REQ-PAIR-6
2026-06-04T03:42:57.0140893Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T03:42:57.0141442Z - Required stages: impl, unit
2026-06-04T03:42:57.0141462Z 
2026-06-04T03:42:57.0141922Z ### REQ-PAIR-7
2026-06-04T03:42:57.0142778Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T03:42:57.0143276Z - Required stages: 
2026-06-04T03:42:57.0143294Z 
2026-06-04T03:42:57.0143748Z ### REQ-SEC-1
2026-06-04T03:42:57.0146162Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T03:42:57.0146652Z - Required stages: 
2026-06-04T03:42:57.0146671Z 
2026-06-04T03:42:57.0147145Z ### REQ-NOTIF-1
2026-06-04T03:42:57.0149378Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T03:42:57.0149891Z - Required stages: 
2026-06-04T03:42:57.0149911Z 
2026-06-04T03:42:57.0150382Z ### REQ-NOTIF-2
2026-06-04T03:42:57.0151905Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T03:42:57.0152422Z - Required stages: 
2026-06-04T03:42:57.0152439Z 
2026-06-04T03:42:57.0152910Z ### REQ-UPD-1
2026-06-04T03:42:57.0153492Z - Title: Peer-propagated update over P2P
2026-06-04T03:42:57.0153985Z - Required stages: 
2026-06-04T03:42:57.0154002Z 
2026-06-04T03:42:57.0154460Z ### REQ-UPD-2
2026-06-04T03:42:57.0155210Z - Title: All binaries signature-verified before handoff
2026-06-04T03:42:57.0155749Z - Required stages: impl, unit
2026-06-04T03:42:57.0155769Z 
2026-06-04T03:42:57.0156230Z ### REQ-UPD-3
2026-06-04T03:42:57.0157171Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T03:42:57.0157725Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0157745Z 
2026-06-04T03:42:57.0158393Z ### REQ-UPD-4
2026-06-04T03:42:57.0159432Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T03:42:57.0159973Z - Required stages: impl, unit
2026-06-04T03:42:57.0159997Z 
2026-06-04T03:42:57.0160461Z ### REQ-UPD-5
2026-06-04T03:42:57.0161183Z - Title: spt-core ripple-updates registered adapters
2026-06-04T03:42:57.0161717Z - Required stages: impl, unit
2026-06-04T03:42:57.0161739Z 
2026-06-04T03:42:57.0162196Z ### REQ-TERM-1
2026-06-04T03:42:57.0163125Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T03:42:57.0163657Z - Required stages: impl, unit
2026-06-04T03:42:57.0163679Z 
2026-06-04T03:42:57.0164139Z ### REQ-TERM-2
2026-06-04T03:42:57.0165130Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T03:42:57.0165652Z - Required stages: impl, unit
2026-06-04T03:42:57.0165676Z 
2026-06-04T03:42:57.0166145Z ### REQ-TERM-3
2026-06-04T03:42:57.0166865Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T03:42:57.0167405Z - Required stages: impl, unit
2026-06-04T03:42:57.0167427Z 
2026-06-04T03:42:57.0167891Z ### REQ-TERM-4
2026-06-04T03:42:57.0170088Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T03:42:57.0170827Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0170852Z 
2026-06-04T03:42:57.0171330Z ### REQ-FRONT-1
2026-06-04T03:42:57.0172257Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T03:42:57.0172755Z - Required stages: 
2026-06-04T03:42:57.0172777Z 
2026-06-04T03:42:57.0173249Z ### REQ-INSTALL-1
2026-06-04T03:42:57.0174303Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T03:42:57.0174808Z - Required stages: 
2026-06-04T03:42:57.0174829Z 
2026-06-04T03:42:57.0175301Z ### REQ-INSTALL-2
2026-06-04T03:42:57.0176022Z - Title: Marketplace-repackaging-friendly install
2026-06-04T03:42:57.0176505Z - Required stages: 
2026-06-04T03:42:57.0176540Z 
2026-06-04T03:42:57.0177023Z ### REQ-INSTALL-3
2026-06-04T03:42:57.0177736Z - Title: Idempotent + interactive-optional first run
2026-06-04T03:42:57.0178234Z - Required stages: 
2026-06-04T03:42:57.0178252Z 
2026-06-04T03:42:57.0178739Z ### REQ-INSTALL-4
2026-06-04T03:42:57.0182836Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-04T03:42:57.0183350Z - Required stages: 
2026-06-04T03:42:57.0183369Z 
2026-06-04T03:42:57.0183858Z ### REQ-MIGRATE-1
2026-06-04T03:42:57.0184760Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T03:42:57.0185257Z - Required stages: 
2026-06-04T03:42:57.0185276Z 
2026-06-04T03:42:57.0185734Z ### REQ-INFRA-1
2026-06-04T03:42:57.0186711Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T03:42:57.0187200Z - Required stages: 
2026-06-04T03:42:57.0187244Z 
2026-06-04T03:42:57.0187706Z ### REQ-DOCS-1
2026-06-04T03:42:57.0188809Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T03:42:57.0189334Z - Required stages: 
2026-06-04T03:42:57.0189368Z 
2026-06-04T03:42:57.0189840Z ### REQ-DOCS-2
2026-06-04T03:42:57.0190692Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T03:42:57.0191186Z - Required stages: 
2026-06-04T03:42:57.0191203Z 
2026-06-04T03:42:57.0191672Z ### REQ-DOCS-3
2026-06-04T03:42:57.0192599Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T03:42:57.0193104Z - Required stages: 
2026-06-04T03:42:57.0193125Z 
2026-06-04T03:42:57.0193586Z ### REQ-DOCS-4
2026-06-04T03:42:57.0194663Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T03:42:57.0195161Z - Required stages: 
2026-06-04T03:42:57.0195180Z 
2026-06-04T03:42:57.0195645Z ### REQ-DOCS-5
2026-06-04T03:42:57.0196716Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T03:42:57.0197423Z - Required stages: 
2026-06-04T03:42:57.0197446Z 
2026-06-04T03:42:57.0198016Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T03:42:57.0199052Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T03:42:57.0199667Z - Required stages: impl, unit
2026-06-04T03:42:57.0199693Z 
2026-06-04T03:42:57.0200263Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T03:42:57.0201046Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T03:42:57.0201581Z - Required stages: impl, unit
2026-06-04T03:42:57.0201601Z 
2026-06-04T03:42:57.0202151Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T03:42:57.0202828Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T03:42:57.0203325Z - Required stages: 
2026-06-04T03:42:57.0203344Z 
2026-06-04T03:42:57.0203872Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T03:42:57.0204869Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T03:42:57.0205418Z - Required stages: impl, unit
2026-06-04T03:42:57.0205451Z 
2026-06-04T03:42:57.0205974Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T03:42:57.0206953Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T03:42:57.0207479Z - Required stages: impl, unit
2026-06-04T03:42:57.0207643Z 
2026-06-04T03:42:57.0208234Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T03:42:57.0209311Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T03:42:57.0209815Z - Required stages: 
2026-06-04T03:42:57.0209834Z 
2026-06-04T03:42:57.0210387Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T03:42:57.0211068Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T03:42:57.0211557Z - Required stages: 
2026-06-04T03:42:57.0211578Z 
2026-06-04T03:42:57.0212146Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T03:42:57.0213012Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T03:42:57.0213549Z - Required stages: impl, unit
2026-06-04T03:42:57.0213591Z 
2026-06-04T03:42:57.0214117Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T03:42:57.0214887Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T03:42:57.0215411Z - Required stages: impl, int
2026-06-04T03:42:57.0215430Z 
2026-06-04T03:42:57.0215992Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T03:42:57.0222937Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T03:42:57.0223641Z - Required stages: impl, unit
2026-06-04T03:42:57.0223671Z 
2026-06-04T03:42:57.0224287Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T03:42:57.0225184Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T03:42:57.0225731Z - Required stages: impl, unit
2026-06-04T03:42:57.0225758Z 
2026-06-04T03:42:57.0226328Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T03:42:57.0227352Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T03:42:57.0227892Z - Required stages: impl, unit
2026-06-04T03:42:57.0227914Z 
2026-06-04T03:42:57.0228491Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T03:42:57.0229439Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T03:42:57.0229982Z - Required stages: impl, unit
2026-06-04T03:42:57.0230017Z 
2026-06-04T03:42:57.0230600Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T03:42:57.0231569Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T03:42:57.0232097Z - Required stages: impl, unit
2026-06-04T03:42:57.0232119Z 
2026-06-04T03:42:57.0232705Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T03:42:57.0233900Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T03:42:57.0234468Z - Required stages: impl, unit
2026-06-04T03:42:57.0234491Z 
2026-06-04T03:42:57.0235010Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T03:42:57.0236397Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T03:42:57.0236945Z - Required stages: impl, unit
2026-06-04T03:42:57.0236966Z 
2026-06-04T03:42:57.0237881Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T03:42:57.0238938Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T03:42:57.0239533Z - Required stages: impl, unit
2026-06-04T03:42:57.0239556Z 
2026-06-04T03:42:57.0240124Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T03:42:57.0241621Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T03:42:57.0242157Z - Required stages: impl, unit
2026-06-04T03:42:57.0242178Z 
2026-06-04T03:42:57.0242761Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-04T03:42:57.0244804Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-04T03:42:57.0245360Z - Required stages: doc, impl, unit
2026-06-04T03:42:57.0245380Z 
2026-06-04T03:42:57.0245964Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T03:42:57.0248335Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-04T03:42:57.0248917Z - Required stages: impl, unit
2026-06-04T03:42:57.0248939Z 
2026-06-04T03:42:57.0249577Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T03:42:57.0250231Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T03:42:57.0250982Z - Required stages: impl, unit
2026-06-04T03:42:57.0251011Z 
2026-06-04T03:42:57.0251557Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T03:42:57.0252249Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T03:42:57.0252800Z - Required stages: impl, unit
2026-06-04T03:42:57.0252827Z 
2026-06-04T03:42:57.0253875Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T03:42:57.0255970Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T03:42:57.0257935Z - Required stages: impl, unit
2026-06-04T03:42:57.0258822Z 
2026-06-04T03:42:57.0259636Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T03:42:57.0261832Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T03:42:57.0263968Z - Required stages: impl, unit
2026-06-04T03:42:57.0265252Z 
2026-06-04T03:42:57.0265937Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T03:42:57.0267779Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T03:42:57.0269829Z - Required stages: impl, unit
2026-06-04T03:42:57.0270810Z 
2026-06-04T03:42:57.0271396Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T03:42:57.0273334Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T03:42:57.0275409Z - Required stages: impl, unit
2026-06-04T03:42:57.0276508Z 
2026-06-04T03:42:57.0277208Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T03:42:57.0279546Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T03:42:57.0281977Z - Required stages: impl, unit
2026-06-04T03:42:57.0283152Z 
2026-06-04T03:42:57.0283690Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T03:42:57.0285584Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T03:42:57.0287706Z - Required stages: impl, unit
2026-06-04T03:42:57.0288557Z 
2026-06-04T03:42:57.0289151Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T03:42:57.0291346Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T03:42:57.0293295Z - Required stages: impl, unit
2026-06-04T03:42:57.0294153Z 
2026-06-04T03:42:57.0294772Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T03:42:57.0296542Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T03:42:57.0298316Z - Required stages: impl, unit
2026-06-04T03:42:57.0299196Z 
2026-06-04T03:42:57.0299814Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T03:42:57.0302040Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T03:42:57.0304314Z - Required stages: impl, unit
2026-06-04T03:42:57.0305177Z 
2026-06-04T03:42:57.0305700Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T03:42:57.0307694Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T03:42:57.0310013Z - Required stages: impl, unit
2026-06-04T03:42:57.0310868Z 
2026-06-04T03:42:57.0311713Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T03:42:57.0313781Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T03:42:57.0316040Z - Required stages: impl, unit
2026-06-04T03:42:57.0316896Z 
2026-06-04T03:42:57.0317476Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T03:42:57.0320006Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T03:42:57.0322641Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0323563Z 
2026-06-04T03:42:57.0324125Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T03:42:57.0326488Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T03:42:57.0329070Z - Required stages: impl, unit
2026-06-04T03:42:57.0329958Z 
2026-06-04T03:42:57.0330569Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T03:42:57.0334204Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-04T03:42:57.0337944Z - Required stages: impl, unit, int
2026-06-04T03:42:57.0338880Z 
2026-06-04T03:42:57.0339514Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T03:42:57.0345354Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-04T03:42:57.0351039Z - Required stages: 
2026-06-04T03:42:57.0351735Z 
2026-06-04T03:42:57.0352347Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T03:42:57.0357647Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-04T03:42:57.0362946Z - Required stages: 
2026-06-04T03:42:57.0363621Z 
2026-06-04T03:42:57.0364258Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T03:42:57.0369041Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-04T03:42:57.0373803Z - Required stages: impl, unit
2026-06-04T03:42:57.0374664Z 
2026-06-04T03:42:57.0375230Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T03:42:57.0379632Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-04T03:42:57.0384104Z - Required stages: impl, unit
2026-06-04T03:42:57.0384952Z 
2026-06-04T03:42:57.0391596Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T03:42:57.0397779Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-04T03:42:57.0403758Z - Required stages: impl, unit
2026-06-04T03:42:57.0404614Z 
2026-06-04T03:42:57.0405166Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-04T03:42:57.0410660Z - Title: WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)
2026-06-04T03:42:57.0415996Z - Required stages: doc, impl, unit
2026-06-04T03:42:57.0416899Z 
2026-06-04T03:42:57.0417397Z ## How to report back
2026-06-04T03:42:57.0418101Z 
2026-06-04T03:42:57.0419041Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T03:42:57.0420487Z 
2026-06-04T03:42:57.0420934Z     {
2026-06-04T03:42:57.0421995Z       "code": "requirement_quality",
2026-06-04T03:42:57.0423455Z       "requirementId": "REQ-...",
2026-06-04T03:42:57.0425582Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T03:42:57.0427535Z       "message": "<short reason>",
2026-06-04T03:42:57.0429042Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T03:42:57.0430655Z     }
2026-06-04T03:42:57.0431215Z 
2026-06-04T03:42:57.0432257Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T03:42:57.0434566Z deterministic findings above don't need to be repeated.
